package ec.linde.modulos.generales;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

import ec.linde.modulos.presupuestos.EjbListasDesplegablesBean;
import ec.linde.modulos.recursos.CatalogosPersonalizada;

@ManagedBean(name = "listasDesplegablesBean")
@SessionScoped
public class ListasDesplegablesBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@EJB
	private EjbListasDesplegablesBean serviciosListasDesplegablesBean = null;
	List<SelectItem> catalogo = new ArrayList<SelectItem>();
	private List<SelectItem> listaClientes = new ArrayList<SelectItem>();
	private List<SelectItem> listaPersonas = new ArrayList<SelectItem>();
	private List<SelectItem> listaBasePresupuestal = new ArrayList<SelectItem>();
	private List<SelectItem> listaSucursales = new ArrayList<SelectItem>();
	private List<SelectItem> listaUnidades = new ArrayList<SelectItem>();
	private List<SelectItem> listaCiudades = new ArrayList<SelectItem>();

	public ListasDesplegablesBean() {

	}

	/***
	 * Devuelve la lista de selectitems dado por una lista de registro de las
	 * tablas considerados como catalogo
	 * 
	 * @param listaCatalogo
	 * @return SelectItems
	 */
	public List<SelectItem> obtenerCatalogo(
			List<CatalogosPersonalizada> listaCatalogo) {

		catalogo.clear();
		for (CatalogosPersonalizada itemCatalogo : listaCatalogo) {
			catalogo.add(new SelectItem(itemCatalogo.getCodigo(), itemCatalogo
					.getDescripcion()));
		}

		return catalogo;
	}

	public List<SelectItem> getListaClientes() {
		try {
			listaClientes = obtenerCatalogo(serviciosListasDesplegablesBean
					.consultarClientes());
		} catch (Exception e) {

			e.printStackTrace();
		}
		return listaClientes;
	}

	public List<SelectItem> getListaPersonas() {
		try {
			listaPersonas = obtenerCatalogo(serviciosListasDesplegablesBean
					.consultarPersonas());
		} catch (Exception e) {

			e.printStackTrace();
		}
		return listaPersonas;
	}

	public List<SelectItem> getListaBasePresupuestal() {
		try {
			listaBasePresupuestal = obtenerCatalogo(serviciosListasDesplegablesBean
					.consultarBasePresupuestal());
		} catch (Exception e) {

			e.printStackTrace();
		}
		return listaBasePresupuestal;
	}

	public List<SelectItem> getCatalogo() {
		return catalogo;
	}

	public List<SelectItem> getListaSucursales() {
		try {

			listaSucursales = obtenerCatalogo(serviciosListasDesplegablesBean
					.consultarSucursales());
		} catch (Exception e) {

			e.printStackTrace();
		}
		return listaSucursales;
	}

	public List<SelectItem> getListaUnidades() {
		try {

			listaUnidades = obtenerCatalogo(serviciosListasDesplegablesBean
					.consultarUnidades());
		} catch (Exception e) {

			e.printStackTrace();
		}
		return listaUnidades;
	}

	public List<SelectItem> getListaCiudades() {
		try {

			listaCiudades = obtenerCatalogo(serviciosListasDesplegablesBean
					.consultarCiudades());
		} catch (Exception e) {

			e.printStackTrace();
		}
		return listaCiudades;
	}

}
